home *** CD-ROM | disk | FTP | other *** search
Wrap
<?xml version="1.0" encoding="EUC-KR"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko"><head><!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX This file is generated from xml source: DO NOT EDIT XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --> <title>╛╞╞──í ┼⌡┼Σ╕«╛≤: CGI╕ª ╗τ┐δ╟╤ ╡┐└√ ╞Σ└╠┴÷ ╗²╝║ - Apache HTTP Server</title> <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /> <link href="../images/favicon.ico" rel="shortcut icon" /></head> <body id="manual-page"><div id="page-header"> <p class="menu"><a href="../mod/">╕≡╡Γ</a> | <a href="../mod/directives.html">┴÷╜├╛ε╡Θ</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">┐δ╛ε</a> | <a href="../sitemap.html">╗τ└╠╞«╕╩</a></p> <p class="apache">Apache HTTP Server Version 2.0</p> <img alt="" src="../images/feather.gif" /></div> <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> <div id="path"> <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs-project/">Documentation</a> > <a href="../">Version 2.0</a> > <a href="./">How-To / Tutorials</a></div><div id="page-content"><div id="preamble"><h1>╛╞╞──í ┼⌡┼Σ╕«╛≤: CGI╕ª ╗τ┐δ╟╤ ╡┐└√ ╞Σ└╠┴÷ ╗²╝║</h1> <div class="toplang"> <p><span>░í┤╔╟╤ ╛≡╛ε: </span><a href="../en/howto/cgi.html" hreflang="en" rel="alternate" title="English"> en </a> | <a href="../ja/howto/cgi.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | <a href="../ko/howto/cgi.html" title="Korean"> ko </a></p> </div> </div> <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#intro">╝╥░│</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#configuring">CGI╕ª ╟π┐δ╟╧╡╡╖╧ ╛╞╞──í ╝│┴ñ╟╧▒Γ</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#writing">CGI ╟┴╖╬▒╫╖Ñ └█╝║╟╧▒Γ</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#troubleshoot">▒╫╖»│¬ ╛╞┴≈ ╡┐└█╟╧┴÷ ╛╩╛╞┐Σ!</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#behindscenes">╡┌┐í╝¡┤┬ ╣½╜╝ └╧└╠ ╣·╛ε┴÷┤┬░í?</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#libraries">CGI ╕≡╡Γ/╢≤└╠║Ω╖»╕«</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#moreinfo">┤⌡ ╕╣└║ ┴ñ║╕...</a></li> </ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="intro" id="intro">╝╥░│</a></h2> <table class="related"><tr><th>░ⁿ╖├╡╚ ╕≡╡Γ</th><th>░ⁿ╖├╡╚ ┴÷╜├╛ε</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code></li><li><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code></li><li><code class="directive"><a href="../mod/core.html#options">Options</a></code></li><li><code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code></li></ul></td></tr></table> <p>CGI (Common Gateway Interface)┤┬ └Ñ╝¡╣÷░í ║╕┼δ CGI ╟┴╖╬▒╫╖Ñ ╚ñ└║ CGI ╜║┼⌐╕│╞«╢≤░φ ║╬╕ú┤┬, (└Ñ╞Σ└╠┴÷ │╗┐δ└╗ ╕╕╡σ┤┬) ┐▄║╬ ╟┴╖╬▒╫╖Ñ░· ┼δ╜┼╟╧┤┬ ╣µ╣²└╗ ┴ñ└╟╟╤┤┘. └Ñ╗τ└╠╞«┐í╝¡ ╡┐└√└╬ ╞Σ└╠┴÷╕ª ╕╕╡σ┤┬ ░í└σ ╚τ╟╧░φ ░ú┤▄╟╤ ╣µ╣²└╠┤┘. └╠ ╣«╝¡┤┬ ╛╞╞──í └Ñ╝¡╣÷┐í CGI╕ª ▒╕╝║╟╧┤┬ ╣µ╣²└╗ ╝╥░│╟╧░φ, CGI ╟┴╖╬▒╫╖Ñ└╗ └█╝║╟╪║╗┤┘.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="configuring" id="configuring">CGI╕ª ╟π┐δ╟╧╡╡╖╧ ╛╞╞──í ╝│┴ñ╟╧▒Γ</a></h2> <p>CGI ╟┴╖╬▒╫╖Ñ└╠ ┐├╣┘╖╬ ╡┐└█╟╧╖┴╕Θ CGI ╜╟╟α└╠ ░í┤╔╟╧╡╡╖╧ ╛╞╞──í╕ª ╝│┴ñ╟╪╛▀ ╟╤┤┘. ╝│┴ñ╟╧┤┬ ╣µ╣²└║ ┐⌐╖»░í┴÷┤┘.</p> <h3><a name="scriptalias" id="scriptalias">ScriptAlias</a></h3> <p><code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code> ┴÷╜├╛ε╕ª ╗τ┐δ╟╧╕Θ ╛╞╞──í┤┬ ╞»┴ñ ╡≡╖║┼Σ╕«╕ª CGI ╟┴╖╬▒╫╖Ñ┐δ└╕╖╬ ╡╨┤┘. ╛╞╞──í┤┬ └╠ ╡≡╖║┼Σ╕«┐í └╓┤┬ ╕≡╡τ ╞─└╧└╠ CGI ╟┴╖╬▒╫╖Ñ└╠╢≤░φ ░í┴ñ╟╧┐⌐ ┼¼╢≤└╠╛≡╞«░í └┌┐°└╗ ┐Σ├╗╟╧╕Θ └┌┐°└╗ ╜╟╟α╟╧╖┴░φ ╜├╡╡╟╤┤┘.</p> <p><code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code> ┴÷╜├╛ε┤┬ ┤┘└╜░· ░░└╠ ╗τ┐δ╟╤┤┘.</p> <div class="example"><p><code> ScriptAlias /cgi-bin/ /usr/local/apache2/cgi-bin/ </code></p></div> <p>└º ┐╣┴ª┤┬ ╛╞╞──í╕ª ▒Γ║╗ └σ╝╥┐í ╝│─í╟╤ ░µ┐∞ <code>httpd.conf</code> ╝│┴ñ╞─└╧┐í └╓┤┬ │╗┐δ└╠┤┘. <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code> ┴÷╜├╛ε┤┬ <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code> ┴÷╜├╛ε┐═ ░░└╠ URL ╛╒║╬║╨└╗ ╞»┴ñ ╡≡╖║┼Σ╕«╖╬ ┤δ└└╟╤┤┘. <code class="directive">Alias</code>┐═ <code class="directive">ScriptAlias</code>┤┬ ║╕┼δ <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> ╡≡╖║┼Σ╕« ╣█┐í └╓┤┬ ╡≡╖║┼Σ╕«┐í ╗τ┐δ╟╤┤┘. <code class="directive">Alias</code>┐═ <code class="directive">ScriptAlias</code>└╟ ┬≈└╠┴í└║ <code class="directive">ScriptAlias</code>░í ├▀░í╖╬ URL ╛╒║╬║╨└╕╖╬ ╜├└█╟╧┤┬ ╕≡╡τ ╞─└╧└╗ CGI ╟┴╖╬▒╫╖Ñ└╕╖╬ ├δ▒▐╟╧┤┬ ┴í└╠┤┘. ▒╫╖í╝¡ └º└╟ ╝│┴ñ└║ ╛╞╞──í┐í░╘ <code>/cgi-bin/</code>└╕╖╬ ╜├└█╟╧┤┬ └┌┐°└╗ ┐Σ├╗╟╧╕Θ <code>/usr/local/apache2/cgi-bin/</code> ╡≡╖║┼Σ╕«┐í╝¡ ├ú╛╞╝¡ CGI ╟┴╖╬▒╫╖Ñ└╕╖╬ ├│╕«╟╧╢≤░φ ╛╦╕░┤┘.</p> <p>┐╣╕ª ╡Θ╛ε, URL <code>http://www.example.com/cgi-bin/test.pl</code>└╗ ┐Σ├╗╟╧╕Θ ╛╞╞──í┤┬ <code>/usr/local/apache2/cgi-bin/test.pl</code> ╞─└╧└╗ ╜╟╟α╟╧┐⌐ ░ß░·╕ª ╣▌╚»╟╤┤┘. ╣░╖╨ ╞─└╧└╠ ┴╕└τ╟╧░φ ╜╟╟α░í┤╔╟╧╕τ ╛ε╢▓ ╣µ╣²└╕╖╬╡τ ├Γ╖┬└╗ ╟╪╛▀ ╟╤┤┘. ▒╫╖╕┴÷ ╛╩└╕╕Θ ╛╞╞──í┤┬ ┐└╖∙╣«└╗ ║╕│╜┤┘.</p> <h3><a name="nonscriptalias" id="nonscriptalias">ScriptAlias ╡≡╖║┼Σ╕« ╣█┐í └╓┤┬ CGI</a></h3> <p>║╕┼δ ║╕╛╚╗≤ └╠└»╢º╣«┐í CGI ╟┴╖╬▒╫╖Ñ└║ <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>╟╤ ╡≡╖║┼Σ╕«┐í ╟╤┴ñ╟╤┤┘. ▒╫╖í╝¡ ░ⁿ╕«└┌┤┬ ┤⌐░í CGI ╟┴╖╬▒╫╖Ñ└╗ ╗τ┐δ╟╥ ╝÷ └╓┤┬┴÷ ╛÷░▌╚≈ ░¿╡╢╟╥ ╝÷ └╓┤┘. ▒╫╖»│¬ └√┤τ╟╤ ║╕╛╚┴╢─í╕ª ├δ╟▀┤┘╕Θ ╛╞╣½ ╡≡╖║┼Σ╕«┐í╝¡│¬ CGI ╟┴╖╬▒╫╖Ñ└╗ ╜╟╟α╟╧┴÷ ╛╩└╗ └╠└»░í ╛°┤┘. ┐╣╕ª ╡Θ╛ε, <code class="directive"><a href="../mod/mod_userdir.html#userdir">UserDir</a></code> ┴÷╜├╛ε╕ª ╗τ┐δ╟╧┐⌐ ╗τ┐δ└┌░í └┌╜┼└╟ ╚¿╡≡╖║┼Σ╕«┐í └Ñ╞Σ└╠┴÷╕ª ░í┴÷┤┬ ░µ┐∞╕ª ░í┴ñ╟╧└┌. ╗τ┐δ└┌░í └┌╜┼└╟ CGI ╟┴╖╬▒╫╖Ñ└╗ ╗τ┐δ╟╧░φ ╜═└║╡Ñ <code>cgi-bin</code> ╡≡╖║┼Σ╕«┐í ┴ó▒┘▒╟╟╤└╠ ╛°┤┘╕Θ, ┤┘╕Ñ ░≈┐í╝¡╢≤╡╡ CGI ╟┴╖╬▒╫╖Ñ└╗ ╜╟╟α╟╧░φ ╜═└╗ ░═└╠┤┘.</p> <p>╛╞╣½ ╡≡╖║┼Σ╕«┐í╝¡│¬ CGI ╜╟╟α└╗ ╟π┐δ╟╧╖┴╕Θ ╡╬ ░·┴ñ└╠ ╟╩┐Σ╟╧┤┘. ╕╒└·, <code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code>│¬ <code class="directive"><a href="../mod/core.html#sethandler">SetHandler</a></code> ┴÷╜├╛ε╕ª ╗τ┐δ╟╧┐⌐ <code>cgi-script</code> ╟┌╡Θ╖»╕ª └█╡┐╟╪╛▀ ╟╤┤┘. ╡╬╣°┬░╖╬, <code class="directive"><a href="../mod/core.html#options">Options</a></code> ┴÷╜├╛ε┐í <code>ExecCGI</code>╕ª ┴÷┴ñ╟╪╛▀ ╟╤┤┘.</p> <h3><a name="options" id="options">Options╕ª ╗τ┐δ╟╧┐⌐ ╕φ╜├└√└╕╖╬ CGI ╜╟╟α└╗ ╟π┐δ╟╧▒Γ</a></h3> <p>╝¡╣÷└╟ ┴╓╝│┴ñ╞─└╧┐í ┴≈┴ó <code class="directive"><a href="../mod/core.html#options">Options</a></code> ┴÷╜├╛ε╕ª ╗τ┐δ╟╧┐⌐ ╞»┴ñ ╡≡╖║┼Σ╕«┐í╝¡ CGI ╜╟╟α└╗ ╟π┐δ╟╥ ╝÷ └╓┤┘.</p> <div class="example"><p><code> <Directory /usr/local/apache2/htdocs/somedir><br /> <span class="indent"> Options +ExecCGI<br /> </span> </Directory> </code></p></div> <p>└º ┴÷╜├╛ε╖╬ ╛╞╞──í┤┬ CGI ╞─└╧└╟ ╜╟╟α└╗ ╟π┐δ╟╤┤┘. ╛ε╢▓ ╞─└╧└╠ CGI ╞─└╧└╬┴÷╡╡ ╝¡╣÷┐í░╘ ╛╦╖┴╛▀ ╟╤┤┘. ┤┘└╜ <code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code> ┴÷╜├╛ε┤┬ ╝¡╣÷┐í░╘ ╚«└σ└┌░í <code>cgi</code>│¬ <code>pl</code>└╬ ╞─└╧└║ ╕≡╡╬ CGI ╟┴╖╬▒╫╖Ñ└╠╢≤░φ ╛╦╕░┤┘.</p> <div class="example"><p><code> AddHandler cgi-script .cgi .pl </code></p></div> <h3><a name="htaccess" id="htaccess">.htaccess ╞─└╧</a></h3> <p><a href="htaccess.html"><code>.htaccess</code> ┼⌡┼Σ╕«╛≤</a>└║ <code>httpd.conf</code>┐í ┴ó▒┘▒╟╟╤└╠ ╛°┤┬ ░µ┐∞┐í CGI ╟┴╖╬▒╫╖Ñ└╗ ╗τ┐δ╟╥ ╝÷ └╓┤┬ ╣µ╣²└╗ ╛╦╖┴┴╪┤┘.</p> <h3><a name="userdir" id="userdir">╗τ┐δ└┌ ╡≡╖║┼Σ╕«</a></h3> <p>╛╞╖í ╝│┴ñ└╗ ╗τ┐δ╟╧╕Θ ╗τ┐δ└┌ ╡≡╖║┼Σ╕«┐í╝¡ <code>.cgi</code>╖╬ │í│¬┤┬ ╞─└╧└╗ CGI ╟┴╖╬▒╫╖Ñ└╕╖╬ ╜╟╟α╟╤┤┘.</p> <div class="example"><p><code> <Directory /home/*/public_html><br /> <span class="indent"> Options +ExecCGI<br /> AddHandler cgi-script .cgi<br /> </span> </Directory> </code></p></div> <p>┤┘└╜└╗ ╗τ┐δ╟╧╕Θ ╗τ┐δ└┌ ╡≡╖║┼Σ╕«└╟ <code>cgi-bin</code> ╟╧└º╡≡╖║┼Σ╕«┐í └╓┤┬ ╕≡╡τ ╞─└╧└╗ CGI ╟┴╖╬▒╫╖Ñ└╕╖╬ └╬╜─╟╤┤┘.</p> <div class="example"><p><code> <Directory /home/*/public_html/cgi-bin><br /> <span class="indent"> Options ExecCGI<br /> SetHandler cgi-script<br /> </span> </Directory> </code></p></div> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="writing" id="writing">CGI ╟┴╖╬▒╫╖Ñ └█╝║╟╧▒Γ</a></h2> <p>``└╧╣▌└√└╬'' ╟┴╖╬▒╫╖í╣╓░· CGI ╟┴╖╬▒╫╖í╣╓ ╗τ└╠┐í┤┬ ╡╬░í┴÷ ┴╓╡╚ ┬≈└╠┴í└╠ └╓┤┘.</p> <p>├╣╣°┬░ ┬≈└╠┤┬ CGI ╟┴╖╬▒╫╖Ñ└║ ┤┘╕Ñ ├Γ╖┬└╗ ╟╧▒Γ└ⁿ┐í ╕╒└· MIME-type ╟∞┤⌡╕ª ├Γ╖┬╟╪╛▀ ╟╤┤┘┤┬ ┴í└╠┤┘. HTTP ╟∞┤⌡┤┬ ┼¼╢≤└╠╛≡╞«┐í░╘ ┼¼╢≤└╠╛≡╞«░í ╛ε╢▓ │╗┐δ└╗ ╣▐░╘╡╔┴÷ ╣╠╕« ╛╦╕░┤┘. ║╕┼δ ┤┘└╜░· ░░┤┘.</p> <div class="example"><p><code> Content-type: text/html </code></p></div> <p>╡╬╣°┬░ ┬≈└╠┤┬ HTML ╚ñ└║ ║Ω╢≤┐∞└·░í ║╕┐⌐┴┘ ╝÷ └╓┤┬ ╟ⁿ╜─└╕╖╬ ├Γ╖┬╟╪╛▀ ╟╤┤┘┤┬ ┴í└╠┤┘. ┤δ║╬║╨└╟ ░µ┐∞ HTML└╗ ├Γ╖┬╟╧┴÷╕╕, ╢º╢º╖╬ gif ▒╫╕▓░· ░░└╠ HTML└╠ ╛╞┤╤ │╗┐δ└╗ ├Γ╖┬╟╧┤┬ CGI ╟┴╖╬▒╫╖Ñ└╗ └█╝║╟╧┤┬ ░µ┐∞╡╡ └╓┤┘.</p> <p>╡╬░í┴÷╕ª ┴ª┐▄╟╧░φ┤┬ CGI ╟┴╖╬▒╫╖Ñ └█╝║└║ └╠╣╠ ╕╕╡Θ╛ε ║╕╛╥└╗ ┤┘╕Ñ ╟┴╖╬▒╫╖Ñ╡Θ░· ╕┼┐∞ ║±╜┴╟╧┤┘.</p> <h3><a name="firstcgi" id="firstcgi">├│└╜└╕╖╬ ╕╕╡τ CGI ╟┴╖╬▒╫╖Ñ</a></h3> <p>┤┘└╜└║ ║Ω╢≤┐∞└·┐í ╟╤ ┴┘└╗ ┬∩┤┬ CGI ╟┴╖╬▒╫╖Ñ ┐╣┴ª┤┘. ▒╫┤δ╖╬ <code>first.pl</code>└╠╢≤┤┬ ╞─└╧┐í └·└σ╟╧░φ, <code>cgi-bin</code> ╡≡╖║┼Σ╕«┐í ║╣╗τ╟╤┤┘.</p> <div class="example"><p><code> #!/usr/bin/perl<br /> print "Content-type: text/html\n\n";<br /> print "Hello, World."; </code></p></div> <p>Perl┐í └═╝≈╟╧┴÷ ╛╩┤⌡╢≤╡╡ ╣½╜╝ └╧└╠ └╧╛ε│¬┤┬┴÷ ╛╦ ╝÷ └╓┤┘. ├╣╣°┬░ ┴┘└║ ╛╞╞──í(╚ñ└║ ╗τ┐δ╟╧┤┬ ╜⌐)┐í░╘ <code>/usr/bin/perl</code> └º─í┐í └╓┤┬ └╬┼═╟┴╕«┼═└╗ ╗τ┐δ╟╧┐⌐ └╠ ╟┴╖╬▒╫╖Ñ ╞─└╧└╗ ╜╟╟α╟╧╢≤░φ ╛╦╕░┤┘. ╡╬╣°┬░ ┴┘└║ ╣µ▒▌ ╕╗╟╤ content-type ╝▒╛≡└╗ ├Γ╖┬╟╧░φ carriage-return ┴┘╣┘▓▐└╗ ╡╬╣° ├Γ╖┬╟╤┤┘. ▒╫╖»╕Θ ╟∞┤⌡ ╡┌┐í HTTP ╟∞┤⌡└╟ │í└╗ ╢µ╟╧┤┬ ║≤┴┘└╠ ╗²▒Γ░φ, ║╗╣«└╠ ╜├└█╟╤┤┘. ╝╝╣°┬░ ┴┘└║ "Hello, World." ╣«└┌┐¡└╗ ├Γ╖┬╟╤┤┘. └╠░═└╕╖╬ │í└╠┤┘.</p> <p>║Ω╢≤┐∞└·╕ª ╜╟╟α╟╧░φ ┴╓╝╥╕ª └╘╖┬╟╤┤┘</p> <div class="example"><p><code> http://www.example.com/cgi-bin/first.pl </code></p></div> <p>╞─└╧ └σ╝╥╕ª └╘╖┬╟╧╕Θ, ║Ω╢≤┐∞└·├ó┐í <code>Hello, World.</code> ╟╤ ┴┘└╠ ║╕└╬┤┘. ╚∩║╨╡╟┴÷┤┬ ╛╩┴÷╕╕, ╟╤╣° ╡┐└█╟╧┤┬ ░═└╗ ║╕╛╥└╕┤╧ └╠┴ª ┤┘╕Ñ ░═└╗ ╜├╡╡╟╪ ║╝ ╝÷ └╓┤┘.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="troubleshoot" id="troubleshoot">▒╫╖»│¬ ╛╞┴≈ ╡┐└█╟╧┴÷ ╛╩╛╞┐Σ!</a></h2> <p>└Ñ┐í╝¡ CGI ╟┴╖╬▒╫╖Ñ┐í ┴ó▒┘╟╥╢º ║Ω╢≤┐∞└·┐í │¬┐├ ╝÷ └╓┤┬ │╗┐δ└║ ▒Γ║╗└√└╕╖╬ │╫░í┴÷┤┘.</p> <dl> <dt>CGI ╟┴╖╬▒╫╖Ñ└╟ ├Γ╖┬</dt> <dd>┴┴┤┘! ╕≡╡τ ░═└╠ └▀ ╡┐└█╟╤┤┘┤┬ ╢µ└╠┤┘. ├Γ╖┬└║ ┴ñ╚«╟╧┴÷╕╕ ║Ω╢≤┐∞└·░í ┐├╣┘╖╬ ├│╕«╟╧┴÷ ╕°╟╤┤┘╕Θ, CGI ╟┴╖╬▒╫╖Ñ┐í╝¡ ┐├╣┘╕Ñ <code>Content-Type</code>└╗ ╝│┴ñ╟╧┐┤┤┬┴÷ ╚«└╬╟╤┤┘.</dd> <dt>CGI ╟┴╖╬▒╫╖Ñ ╝╥╜║─┌╡σ ╚ñ└║ "POST Method Not Allowed" ╣«▒╕</dt> <dd>CGI ╟┴╖╬▒╫╖Ñ└╗ ╜╟╟α╟╧╡╡╖╧ ╛╞╞──í╕ª └√└²╚≈ ╝│┴ñ╟╧┴÷ ╛╩╛╥┤┘┤┬ ╢µ└╠┤┘. <a href="#configuring">╛╞╞──í ╝│┴ñ╟╧▒Γ</a> └²└╗ ┤┘╜├ └╨░φ ╗⌐╕╘└║ ║╬║╨└╠ └╓┤┬┴÷ ├ú╛╞║┴╢≤.</dd> <dt>"Forbidden"└╕╖╬ ╜├└█╟╧┤┬ ╣«▒╕</dt> <dd>▒╟╟╤ ╣«┴ª░í └╓┤┘┤┬ ╢µ└╠┤┘. <a href="#errorlogs">╛╞╞──í ┐└╖∙ ╖╬▒╫</a>┐═ ╛╞╖í <a href="#permissions">╞─└╧▒╟╟╤</a> └²└╗ ╚«└╬╟╧╢≤.</dd> <dt>"Internal Server Error"╢≤┤┬ ╣«▒╕</dt> <dd><a href="#errorlogs">╛╞╞──í ┐└╖∙ ╖╬▒╫</a>╕ª ║╕╕Θ ╛╞╕╢╡╡ CGI ╟┴╖╬▒╫╖Ñ└╠ ├Γ╖┬╟╤ ┐└╖∙╣«░· ╟╘▓▓ "Premature end of script headers"░í ║╕└╧ ░═└╠┤┘. └╠ ░µ┐∞ ╛╞╖í │╗┐δ╡Θ└╗ ╟╧│¬╛┐ ╚«└╬╟╧┐⌐ ╛ε╢▓ └╠└»╖╬ CGI ╟┴╖╬▒╫╖Ñ└╠ └√└²╟╤ HTTP ╟∞┤⌡╕ª ├Γ╖┬╟╧┴÷ ╕°╟▀┤┬┴÷ ╛╦╛╞║╗┤┘.</dd> </dl> <h3><a name="permissions" id="permissions">╞─└╧▒╟╟╤</a></h3> <p>╝¡╣÷┤┬ ┤τ╜┼░· ╡┐└╧╟╤ ░Φ┴ñ└╕╖╬ ╡┐└█╟╧┴÷ ╛╩└╜└╗ ╕φ╜╔╟╧╢≤. ┴∩, ╝¡╣÷░í ╜├└█╟╧╕Θ ╝¡╣÷┤┬ ║±╞»▒╟ ╗τ┐δ└┌ ▒╟╟╤(║╕┼δ <code>nobody</code>│¬ <code>www</code>)└╕╖╬ ╡┐└█╟╤┤┘. ▒╫╖í╝¡ ┤τ╜┼└╠ ╝╥└»╟╤ ╞─└╧└╗ ╜╟╟α╟╧╖┴╕Θ ▒╟╟╤└╠ ╟╩┐Σ╟╧┤┘. ╞─└╧┐í <code>nobody</code>░í ╜╟╟α╟╧▒Γ┐í ├µ║╨╟╤ ▒╟╟╤└╗ ┴╓▒Γ└º╟╪ ║╕┼δ ╕≡╡╬┐í░╘ ╞─└╧└╟ ╜╟╟α ▒╟╟╤└╗ ┴╪┤┘.</p> <div class="example"><p><code> chmod a+x first.pl </code></p></div> <p>╢╟, ╟┴╖╬▒╫╖Ñ└╠ ┤┘╕Ñ ╞─└╧└╗ └╨░┼│¬ ╛┤┤┘╕Θ └╠ ╞─└╧┐í╡╡ └√└²╟╤ ▒╟╟╤└╠ ╟╩┐Σ╟╧┤┘.</p> <h3><a name="pathinformation" id="pathinformation">░µ╖╬ ┴ñ║╕┐═ ╚»░µ</a></h3> <p>╕φ╖╔╟α┐í╝¡ ╟┴╖╬▒╫╖Ñ└╗ ╜╟╟α╟╧╕Θ └┌╡┐└╕╖╬ ╛ε╢▓ ┴ñ║╕░í ╜⌐╖╬ └ⁿ┤▐╡╚┤┘. ┐╣╕ª ╡Θ╛ε, <code>PATH</code>┤┬ ╜⌐┐í░╘ ┤τ╜┼└╠ ╕╗╟╤ ╞─└╧└╗ ├ú└╗ └σ╝╥╕ª ╛╦╖┴┴╪┤┘.</p> <p>└Ñ╝¡╣÷░í ╟┴╖╬▒╫╖Ñ└╗ CGI ╟┴╖╬▒╫╖Ñ└╕╖╬ ╜╟╟α╟╥╢º┤┬ <code>PATH</code>░í ┤┘╕ª ╝÷ └╓┤┘. (┐╣╕ª ╡Θ╛ε, <code>sendmail</code> ░░└╠) CGI ╟┴╖╬▒╫╖Ñ ╛╚┐í╝¡ ╜╟╟α╟╧┤┬ ╕φ╖╔╛ε┤┬ ┐╧└ⁿ╟╤ ░µ╖╬╖╬ ╕φ╜├╟╪╛▀ ╜⌐└╠ ╕φ╖╔╛ε╕ª ├ú└╗ ╝÷ └╓┤┘.</p> <p>░µ╖╬ ╣«┴ª┤┬ ┤┘└╜░· ░░└╠ CGI ╟┴╖╬▒╫╖Ñ ├╣╣°┬░ ┴┘┐í │¬┐└┤┬ ╜║┼⌐╕│╞« └╬┼═╟┴╕«┼═ (║╕┼δ <code>perl</code>) ░µ╖╬┐í╝¡ └┌┴╓ ╣▀╗²╟╤┤┘.</p> <div class="example"><p><code> #!/usr/bin/perl </code></p></div> <p>╜╟┴ª╖╬ └╬┼═╟┴╕«┼═└╟ ░µ╖╬└╬┴÷ ╚«└╬╟╤┤┘.</p> <p>╢╟, CGI ╟┴╖╬▒╫╖Ñ└╠ ┤┘╕Ñ <a href="#env">╚»░µ║»╝÷</a>╕ª ╗τ┐δ╟╤┤┘╕Θ ╛╞╞──í░í └╠ ║»╝÷╡Θ└╗ ╟┴╖╬▒╫╖Ñ┐í░╘ └ⁿ┤▐╟╪╛▀ ╟╤┤┘.</p> <h3><a name="syntaxerrors" id="syntaxerrors">╟┴╖╬▒╫╖Ñ ┐└╖∙</a></h3> <p>CGI ╟┴╖╬▒╫╖Ñ└╠ ╜╟╞╨╟╧┤┬ ░µ┐∞ ┤δ║╬║╨ ╟┴╖╬▒╫╖Ñ └┌├╝ ╣«┴ª╢º╣«└╠┤┘. ╞»╚≈ └º└╟ ╡╬░í┴÷ ╜╟╝÷╕ª ╟╧┴÷ ╛╩╛╥░φ └╠ ▒█└╗ ░Φ╝╙ ║╕░φ └╓┤┘╕Θ ┤⌡┤⌡┐φ ▒╫╖╕┤┘. ╕╒└· └Ñ╝¡╣÷┐í╝¡ ╜╟╟α╟╧▒Γ └ⁿ┐í ╕φ╖╔╟α┐í╝¡ ╟┴╖╬▒╫╖Ñ└╗ ╜╟╟α╟╪║╗┤┘. ┐╣╕ª ╡Θ╛ε, ┤┘└╜░· ░░└╠ ╜╟╟α╟╤┤┘.</p> <div class="example"><p><code> cd /usr/local/apache2/cgi-bin<br /> ./first.pl </code></p></div> <p>(<code>perl</code> └╬┼═╟┴╕«┼═╕ª ╜╟╟α╟╧┴÷ ╕╢╢≤. ╜⌐░· ╛╞╞──í┤┬ ╜║┼⌐╕│╞« ├╣╣°┬░ ┴┘┐í └╓┤┬ <a href="#pathinformation">░µ╖╬ ┴ñ║╕</a>╕ª ╗τ┐δ╟╧┐⌐ └╬┼═╟┴╕«┼═╕ª ├ú╛╞╛▀ ╟╤┤┘.)</p> <p>╟┴╖╬▒╫╖Ñ└║ ┴ª└╧ ╕╒└· <code>Content-Type</code>└╗ ╞≈╟╘╟╤ HTTP ╟∞┤⌡╡Θ└╗ ├Γ╖┬╟╧░φ ║≤ ┴┘└╗ ├Γ╖┬╟╪╛▀ ╟╤┤┘. ┤┘╕Ñ ░═└╗ ├Γ╖┬╟╤┤┘╕Θ └Ñ╝¡╣÷┐í╝¡ ╜╟╟α╟╥ ░µ┐∞ ╛╞╞──í┤┬ <code>Premature end of script headers</code>╕ª ╣▌╚»╟╤┤┘. └┌╝╝╟╤ │╗┐δ└║ └º└╟ <a href="#writing">CGI ╟┴╖╬▒╫╖Ñ └█╝║╟╧▒Γ</a>╕ª ┬ⁿ░φ╟╧╢≤.</p> <h3><a name="errorlogs" id="errorlogs">┐└╖∙ ╖╬▒╫</a></h3> <p>┐└╖∙ ╖╬▒╫┤┬ ┤τ╜┼ ╞φ└╠┤┘. ╣½╛≡░í └▀╕°╡╟╕Θ ┐└╖∙ ╖╬▒╫┐í ╣«▒╕░í ╗²▒Σ┤┘. ┐└╖∙ ╖╬▒╫╕ª ┴ª└╧ ╕╒└· ╗∞╞∞║┴╛▀ ╟╤┤┘. └Ñ╗τ└╠╞«╕ª ╚ú╜║╞├╟╧┤┬ ░≈┐í╝¡ ┐└╖∙ ╖╬▒╫╕ª ║╕┴÷ ╕°╟╧░╘ ╟╤┤┘╕Θ, ╛╞╕╢╡╡ ┤┘╕Ñ ╛≈├╝╕ª ╛╦╛╞║┴╛▀ ╟╤┤┘. ┐└╖∙ ╖╬▒╫╕ª ║╕┤┬ ╣µ╣²└╗ └═╚≈╕Θ, ┤δ║╬║╨└╟ ╣«┴ª╕ª ╗í╕« ╞─╛╟╟╧┐⌐ ╟╪░ß╟╥ ╝÷ └╓┤┘.</p> <h3><a name="suexec" id="suexec">Suexec</a></h3> <p><a href="../suexec.html">suexec</a> ┴÷┐° ╟┴╖╬▒╫╖Ñ└╗ ╗τ┐δ╟╧╕Θ ╛ε╢▓ ░í╗≤╚ú╜║╞« ╚ñ└║ ╛ε╢▓ ╗τ┐δ└┌ ╡≡╖║┼Σ╕«┐í └╓┤┬┴÷┐í ╡√╢≤ CGI ╟┴╖╬▒╫╖Ñ└╗ ┤┘╕Ñ ╗τ┐δ└┌ ▒╟╟╤└╕╖╬ ╜╟╟α╟╥ ╝÷ └╓┤┘. Suexec┤┬ ╕┼┐∞ ╛÷░▌╟╧░╘ ▒╟╟╤└╗ ░╦╗τ╟╧╕τ, ░╦╗τ╕ª ╟╧│¬╢≤╡╡ ┼δ░·╟╧┴÷ ╕°╟╧╕Θ CGI ╟┴╖╬▒╫╖Ñ└╗ ╜╟╟α╟╧┴÷ ╛╩░φ <code>Premature end of script headers</code>╕ª ╣▌╚»╟╤┤┘.</p> <p>suexec╕ª ╗τ┐δ╟╧░φ └╓┤┬┴÷ ╛╦╖┴╕Θ <code>apachectl -V</code>╕ª ╜╟╟α╟╧┐⌐ <code>SUEXEC_BIN</code> └º─í╕ª ╚«└╬╟╤┤┘. ╛╞╞──í░í ╜├└█╟╥╢º ▒╫ └σ╝╥┐í╝¡ suexec ╜╟╟α╞─└╧└╗ ╣▀░▀╟╧╕Θ, suexec╕ª ╗τ┐δ╟╥ ╝÷ └╓┤┘.</p> <p>suexec╕ª ┐╧└ⁿ╚≈ └╠╟╪╟╧┴÷ ╕°╟▀┤┘╕Θ ╗τ┐δ╟╪╝¡┤┬ ╛╚╡╚┤┘. suexec╕ª ╗τ┐δ╟╧┴÷ ╛╩└╕╖┴╕Θ <code>SUEXEC_BIN</code> └º─í┐í └╓┤┬ <code>suexec</code> ╜╟╟α╞─└╧└╗ ┴÷┐∞░φ (╚ñ└║ ╞─└╧╕φ└╗ ╣┘▓┘░φ) ╝¡╣÷╕ª └τ╜├└█╟╧╕Θ ╡╚┤┘. <a href="../suexec.html">suexec</a>┐í ┤δ╟╪ └╨└║ ┤┘└╜ ▒╫╖í╡╡ ╗τ┐δ╟╧░φ ╜═┤┘╕Θ, <code>suexec -V</code>╕ª ╜╟╟α╟╧┐⌐ suexec ╖╬▒╫╞─└╧ └º─í╕ª ╛╦╛╞│╗░φ ╖╬▒╫╞─└╧┐í╝¡ ┤τ╜┼└╠ ╛ε╢▓ ▒╘─ó└╗ ╛ε▒Γ░φ └╓┤┬┴÷ ├ú┤┬┤┘.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="behindscenes" id="behindscenes">╡┌┐í╝¡┤┬ ╣½╜╝ └╧└╠ ╣·╛ε┴÷┤┬░í?</a></h2> <p>CGI ╟┴╖╬▒╫╖í╣╓┐í └═╝≈╟╪┴·╝÷╖╧ ╡┌┐í╝¡ ╣·╛ε┴÷┤┬ └╧└╗ └╠╟╪╟╧╕Θ ╡╡┐≥└╠ ╡╚┤┘. ▒╕├╝└√└╕╖╬ ║Ω╢≤┐∞└·┐═ ╝¡╣÷░í ╝¡╖╬ ┼δ╜┼╟╧┤┬ ╣µ╣²└╗ ╕╗╟╧┤┬ ░═└╠┤┘. ╕⌠╢≤╡╡ "Hello, World."╕ª ├Γ╖┬╟╧┤┬ ╟┴╖╬▒╫╖Ñ└╗ └█╝║╟╥ ╝÷ └╓┴÷╕╕ └╠╖▒ ╟┴╖╬▒╫╖Ñ└║ ║░╖╬ ╛╡╕≡░í ╛°▒Γ╢º╣«└╠┤┘.</p> <h3><a name="env" id="env">╚»░µ║»╝÷</a></h3> <p>╚»░µ║»╝÷┤┬ ┤τ╜┼└╠ ──╟╗┼═╕ª ╗τ┐δ╟╧┤┬ ╡┐╛╚ ┤τ╜┼ ┴╓└º╕ª ╢░┤┘┤╧┤┬ ░¬└╠┤┘. ╚»░µ║»╝÷┤┬ path (──╟╗┼═░í ┤τ╜┼└╠ └╘╖┬╟╤ ╕φ╖╔╛ε┐í ╟╪┤τ╟╧┤┬ ╜╟┴ª ╞─└╧└╗ ├ú┤┬ └σ╝╥), ╗τ┐δ└┌╕φ, ┼═╣╠│╬ ┴╛╖∙┐═ ░░└╠ └»┐δ╟╤ ┴ñ║╕┤┘. └╧╣▌└√└╬ ╚»░µ║»╝÷╕ª ╕≡╡╬ ║╕╖┴╕Θ ╕φ╖╔╟α ╟┴╖╥╟┴╞«┐í╝¡ <code>env</code>╕ª └╘╖┬╟╤┤┘.</p> <p>CGI╕ª ╜╟╟α╟╥╢º╡╡ ╝¡╣÷┐═ ║Ω╢≤┐∞└·┤┬ ░ó└┌└╟ ╚»░µ║»╝÷╕ª ╝¡╖╬ ▒│╚»╟╤┤┘. └╠ ┴ñ║╕┐í┤┬ ║Ω╢≤┐∞└· ┴╛╖∙ (Netscape, IE, Lynx), ╝¡╣÷ ┴╛╖∙ (╛╞╞──í, IIS, WebSite), ╜╟╟α╟╧┤┬ CGI ╟┴╖╬▒╫╖Ñ╕φ ╡ε└╠ └╓┤┘.</p> <p>CGI ╟┴╖╬▒╫╖í╕╙┤┬ └╠╖▒ ║»╝÷╡Θ└╗ ╗τ┐δ╟╥ ╝÷ └╓░φ, ╚»░µ║»╝÷┤┬ ┼¼╢≤└╠╛≡╞«-╝¡╣÷ ┼δ╜┼┐í┤┬ └╧║╬║╨└╗ ┬≈┴÷╟╤┤┘. └ⁿ├╝ ╟╩╝÷ ║»╝÷ ╕±╖╧└║ <a href="http://hoohoo.ncsa.uiuc.edu/cgi/env.html">http://hoohoo.ncsa.uiuc.edu/cgi/env.html</a>┐í └╓┤┘.</p> <p>╛╞╖í ░ú┤▄╟╤ Perl CGI ╟┴╖╬▒╫╖Ñ└║ └┌╜┼┐í░╘ └ⁿ┤▐╡╚ ╕≡╡τ ╚»░µ║»╝÷╕ª ║╕┐⌐┴╪┤┘. ╛╞╞──í ╣Φ╞≈║╗└╟ <code>cgi-bin</code> ╡≡╖║┼Σ╕«┐í └╠┐═ ║±╜┴╟╤ ╟┴╖╬▒╫╖Ñ└╠ ╡╬░│ └╓┤┘. ╕ε╕ε ║»╝÷┤┬ ╟╩╝÷└╠░φ │¬╕╙┴÷┤┬ ╝▒┼├└√└╠┤┘. ▒╫╖í╝¡ ░°╜─ ╕±╖╧┐í ╛°┤┬ ║»╝÷╡╡ ║╕└╬┤┘. ╢╟, ╛╞╞──í┤┬ ▒Γ║╗└√└╕╖╬ ┴ª░°╟╧┤┬ ╚»░µ║»╝÷ ┐▄┐í ┐⌐╖»░í┴÷ ╣µ╣²└╕╖╬ <a href="../env.html">┴≈┴ó ╚»░µ║»╝÷╕ª ├▀░í╟╥ ╝÷ └╓┤┘</a>.</p> <div class="example"><p><code> #!/usr/bin/perl<br /> print "Content-type: text/html\n\n";<br /> foreach $key (keys %ENV) {<br /> <span class="indent"> print "$key --> $ENV{$key}<br>";<br /> </span> } </code></p></div> <h3><a name="stdin" id="stdin">STDIN░· STDOUT</a></h3> <p>╢╟, ╝¡╣÷┐═ ┼¼╢≤└╠╛≡╞«┤┬ ╟Ñ┴╪└╘╖┬(<code>STDIN</code>)░· ╟Ñ┴╪├Γ╖┬(<code>STDOUT</code>)└╕╖╬ ┼δ╜┼╟╤┤┘. └╧╗≤└√└╬ ░µ┐∞ <code>STDIN</code>└║ ┼░║╕╡σ│¬ ╟┴╖╬▒╫╖Ñ└╠ ├│╕«╟╧┤┬ ╞─└╧└╗ │¬┼╕│╗░φ, <code>STDOUT</code>└║ ║╕┼δ ─▄╝╓└╠│¬ ╚¡╕Θ└╗ ╢µ╟╤┤┘.</p> <p>CGI ╟┴╖╬▒╫╖Ñ┐í░╘ └Ñ ╛τ╜─(form)└╗ <code>POST</code>╟╧╕Θ ╛τ╜─┐í └╘╖┬╟╤ └┌╖ß╕ª ╞»║░╟╤ ╟ⁿ╜─└╕╖╬ ╣¡╛ε╝¡ CGI ╟┴╖╬▒╫╖Ñ└╟ <code>STDIN</code>└╕╖╬ └ⁿ┤▐╟╤┤┘. ▒╫╖»╕Θ ╟┴╖╬▒╫╖Ñ└║ ┼░║╕╡σ│¬ ╞─└╧┐í╝¡ ╛≥└║ └┌╖ß╕ª ├│╕«╟╧╡φ└╠ └┌╖ß╕ª ├│╕«╟╥ ╝÷ └╓┤┘.</p> <p>"╞»║░╟╤ ╟ⁿ╜─"└║ ╕┼┐∞ ░ú┤▄╟╧┤┘. ╟╫╕± └╠╕º░· ░¬└╗ ╡ε╚ú(=)╖╬ ┐¼░ß╟╧░φ, ╟╫╕± └╠╕º░· ░¬└╟ ╜╓╡Θ└╗ ╝¡╖╬ ╛╪╞█╗≈╡σ(&)╖╬ ┐¼░ß╟╤┤┘. ░°╣Θ, ╛┌╞█╗≈╡σ, ╡ε╚ú ░░└║ ║╬└┌┐¼╜║╖»┐ε ╣«└┌┤┬ ╚Ñ╡┐╟╧┴÷ ╛╩╡╡╖╧ 16┴°╝÷╖╬ ║»╚»╟╤┤┘. ┐╧└ⁿ╟╤ └┌╖ß ╣«└┌┐¡└║ ┤┘└╜░· ░░└╠ ╗²░σ┤┘.</p> <div class="example"><p><code> name=Rich%20Bowen&city=Lexington&state=KY&sidekick=Squirrel%20Monkey </code></p></div> <p>┴╛┴╛ URL ╡┌┐í╝¡ └╠╖▒ ╣«└┌┐¡└╗ ║╕░╘ ╡╚┤┘. └╠ ░µ┐∞ ╝¡╣÷┤┬ ╣«└┌┐¡└╗ <code>QUERY_STRING</code>└╠╢≤┤┬ ╚»░µ║»╝÷┐í └·└σ╟╤┤┘. └╠╕ª <code>GET</code> ┐Σ├╗└╠╢≤░φ ╟╤┤┘. <code>FORM</code> ┼┬▒╫└╟ <code>METHOD</code> ╝╙╝║└╗ ┴÷┴ñ╟╧┐⌐ HTML ╛τ╜─(form)└╠ └┌╖ß╕ª <code>GET</code>╟╥┴÷ <code>POST</code>╟╥┴÷ ░ß┴ñ╟╤┤┘.</p> <p>└╠┴ª ╟┴╖╬▒╫╖Ñ└║ └╠╖▒ ╣«└┌┐¡└╗ └»┐δ╟╤ ┴ñ║╕╖╬ ┬╔░│╛▀ ╟╤┤┘. ┤┘╟α╚≈╡╡ └╠╖▒ └┌╖ß ├│╕«╕ª ╡╜░φ CGI ╟┴╖╬▒╫╖Ñ└╟ ┤┘╕Ñ ┐⌐╖» ╕Θ└╗ ╗∞╟╟┤┬ ╢≤└╠║Ω╖»╕«┐═ ╕≡╡Γ╡Θ└╠ └╓┤┘.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="libraries" id="libraries">CGI ╕≡╡Γ/╢≤└╠║Ω╖»╕«</a></h2> <p>CGI ╟┴╖╬▒╫╖Ñ└╗ └█╝║╟╥╢º ┴÷╖τ╟╤ └█╛≈└╗ ┤δ╜┼╟╪┴╓┤┬ ─┌╡σ ╢≤└╠║Ω╖»╕« ╚ñ└║ ╕≡╡Γ└╗ ╗τ┐δ╟╥┴÷ ░φ╖┴╟╪║┴╛▀ ╟╤┤┘. └╠╖▒ ░═└╗ ╗τ┐δ╟╧╕Θ ╣÷▒╫░í ┴┘░φ ┤⌡ ╗í╕« ╟┴╖╬▒╫╖Ñ└╗ ░│╣▀╟╥ ╝÷ └╓┤┘.</p> <p>Perl╖╬ CGI ╟┴╖╬▒╫╖Ñ└╗ └█╝║╟╤┤┘╕Θ <a href="http://www.cpan.org/">CPAN</a>┐í╝¡ ░ⁿ╖├ ╕≡╡Γ╡Θ└╗ ├ú└╗ ╝÷ └╓┤┘. CGI ░│╣▀┐í ░í└σ │╬╕« ╗τ┐δ╡╟┤┬ ╕≡╡Γ└║ <code>CGI.pm</code>└╠┤┘. ┤δ║╬║╨└╟ ╟┴╖╬▒╫╖Ñ┐í ├µ║╨╟╤ ├╓╝╥ ▒Γ┤╔└╗ ▒╕╟÷╟╤ <code>CGI::Lite</code>╡╡ ░φ╖┴╟╪ ║╝ ╝÷ └╓┤┘.</p> <p>C╖╬ CGI ╟┴╖╬▒╫╖Ñ└╗ └█╝║╟╤┤┘╕Θ ╝▒┼├└╟ ┐⌐┴÷░í ╕╣┤┘. └╠┴▀ ╟╧│¬░í <a href="http://www.boutell.com/cgic/">http://www.boutell.com/cgic/</a>┐í └╓┤┬ <code>CGIC</code> ╢≤└╠║Ω╖»╕«┤┘.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="moreinfo" id="moreinfo">┤⌡ ╕╣└║ ┴ñ║╕...</a></h2> <p>└Ñ┐í ╕┼┐∞ ╕╣└║ CGI ┴ñ║╕░í └╓┤┘. ┤║╜║▒╫╖∞ <a href="news:comp.infosystems.www.authoring.cgi">comp.infosystems.www.authoring.cgi</a>┐í╝¡ ┐⌐╖» ╗τ╢≈╡Θ░· CGI ╣«┴ª╕ª │φ└╟╟╥ ╝÷ └╓┤┘. HTML Writers Guild└╟ -servers ╕▐└╧╕╡╕«╜║╞«┤┬ ┴·╣«┐í ┤δ╟╤ ┤Σ└╗ ├ú▒Γ┐í ╚╟╕ó╟╤ └σ╝╥┤┘. <a href="http://www.hwg.org/lists/hwg-servers/">http://www.hwg.org/lists/hwg-servers/</a>┐í╝¡ ┤⌡ ╕╣└║ ░═└╗ ╛╦ ╝÷ └╓┤┘.</p> <p>▒╫╕«░φ ╣░╖╨ CGI ╟┴╖╬▒╫╖Ñ ╡┐└█┐í ┤δ╟╤ ╕≡╡τ │╗┐δ└╗ ╝│╕φ╟╤ CGI ▒╘╛α└╗ └╨╛ε╛▀ ╟╥┴÷╡╡ ╕≡╕Ñ┤┘. <a href="http://hoohoo.ncsa.uiuc.edu/cgi/interface.html">NCSA</a>┐í ┐°║╗ ╣«╝¡░í └╓░φ, ╝÷┴ñ╟╤ ├╩╛╚└║ <a href="http://web.golux.com/coar/cgi/">Common Gateway Interface RFC ╟┴╖╬┴º╞«</a>┐í └╓┤┘.</p> <p>╕▐└╧╕╡╕«╜║╞«│¬ ┤║╜║▒╫╖∞┐í ╟÷└τ ░▌░φ └╓┤┬ CGI ╣«┴ª┐í ┤δ╟╪ ┴·╣«╟╥╢º┤┬ ╣▀╗²╟╤ ╟÷╗≤░· ┐°╖í ▒Γ┤δ╟╤ ░ß░·, ╜╟┴ª╖╬ ╣▀╗²╟╤ ╟÷╗≤└╠ ╛ε╢╗░╘ ┤┘╕Ñ┴÷, ╗τ┐δ╟╧┤┬ ╝¡╣÷, CGI ╟┴╖╬▒╫╖Ñ└╗ └█╝║╟╤ ╛≡╛ε, ░í┤╔╟╧╕Θ ╟╪┤τ ─┌╡σ╕ª └┌╝╝╚≈ └√╛ε╢≤. ▒╫╖»╕Θ ╟╪░ß├Ñ└╗ ├ú▒Γ ╜¼┐÷┴°┤┘.</p> <p>╛╞╞──í ╝╥╜║─┌╡σ░í └▀╕°╡╟╛·┤┘░φ ╚«╜┼╟╧┴÷ ╛╩┤┬ ╟╤ CGI ┴·╣«└╗ ╛╞╞──í ╣÷▒╫ ╡Ñ└╠┼═║ú└╠╜║┐í ┐├╕«╕Θ <strong>└²┤δ╖╬</strong> ╛╚╡╚┤┘.</p> </div></div> <div class="bottomlang"> <p><span>░í┤╔╟╤ ╛≡╛ε: </span><a href="../en/howto/cgi.html" hreflang="en" rel="alternate" title="English"> en </a> | <a href="../ja/howto/cgi.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | <a href="../ko/howto/cgi.html" title="Korean"> ko </a></p> </div><div id="footer"> <p class="apache">Copyright 1999-2004 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> <p class="menu"><a href="../mod/">╕≡╡Γ</a> | <a href="../mod/directives.html">┴÷╜├╛ε╡Θ</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">┐δ╛ε</a> | <a href="../sitemap.html">╗τ└╠╞«╕╩</a></p></div> </body></html>